// 全局错误处理中间件

const Joi = require('joi');

function errorHandler(err, req, res, next) {
  // 数据校验失败 -> 400
  if (err instanceof Joi.ValidationError) {
    return res.error(400, err);
  }

  // token 认证失败
  if (err && err.name === 'UnauthorizedError') {
    return res.error(401, 'token身份认证失败！');
  }

  // 其他错误（可能来自 next('xxx') 或 next(new Error())）
  return res.error(err);
}

module.exports = errorHandler;
